package org.wlc.demov1;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.math.BigDecimal;

/**
 * @author 王立朝
 * @date 2022/5/22
 * @description: 实现了支付和模式的全部功能。
 */
public class PayController {


    private static final Logger logger = LoggerFactory.getLogger(PayController.class);

    /**
     * 支付
     * @param uId 用户id
     * @param tradeId 交易ID
     * @param amount 支付金额
     * @param channelType  支付渠道
     * @param modeType  支付类型
     * @return
     */
    public boolean doPay(String uId, String tradeId, BigDecimal amount, int channelType, int modeType) {
        // 微信支付
        if (ChannelType.Wx.getChannelCode() == channelType) {
            logger.info("模拟微信渠道支付划账开始。uId：{} tradeId：{} amount：{}", uId, tradeId, amount);
            if (PayType.PASSWORD.getPayTypeCode() == modeType) {
                logger.info("密码支付，风控校验环境安全");
            } else if (PayType.FACE.getPayTypeCode() == modeType) {
                logger.info("人脸支付，风控校验脸部识别");
            } else if (PayType.FINGERPRINT.getPayTypeCode() == modeType) {
                logger.info("指纹支付，风控校验指纹信息");
            }
        }
        // 支付宝支付
        else if (ChannelType.ZFB.getChannelCode() == channelType) {
            logger.info("模拟支付宝渠道支付划账开始。uId：{} tradeId：{} amount：{}", uId, tradeId, amount);
            if (PayType.PASSWORD.getPayTypeCode() == modeType) {
                logger.info("密码支付，风控校验环境安全");
            } else if (PayType.FACE.getPayTypeCode() == modeType) {
                logger.info("人脸支付，风控校验脸部识别");
            } else if (PayType.FINGERPRINT.getPayTypeCode() == modeType) {
                logger.info("指纹支付，风控校验指纹信息");
            }
        }
        return true;
    }

}
